﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Net;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Web.Script.Serialization;
using SCO.DAO.Interfaces;
using SCO.BL.Interfaces;
using SCO.DAO.SqlDataAdapter;
using SCO.BL.Service;
using SCO.BE;
using System.Net.Http;
using System.Web.Http;
namespace AppSCO.Controllers
{
    public class atencionController : Controller
    {
        public ActionResult atencionCitas(int CODCIT)
        {
            IDaoFactory daoFactory = new DAOFactory();
            IListasService listasServices =  new ListasService(daoFactory);
            var model = new Models.administracionModel();
            model.citaGenerada.CODCIT = CODCIT;
            model.citaGenerada.listaDoctor = (from c in listasServices.listaDoctor() select new SelectListItem() { Text = c.DESCRIPCION, Value = c.CODIGO.ToString() }).ToList();
            model.citaGenerada.listaLaboratorio = (from c in listasServices.listaLaboratorio() select new SelectListItem() { Text = c.DESCRIPCION, Value = c.CODIGO.ToString() }).ToList();
            return View(model);
        }

        public ActionResult cancelacionCitas(int CODCIT) {
            IDaoFactory daoFactory = new DAOFactory();
            IListasService listasServices = new ListasService(daoFactory);
            var model = new Models.administracionModel();
            model.citaGenerada.CODCIT = CODCIT;
            return View(model);
        }

        public JsonResult datosCita(string CODCIT) {
            using (var client = new WebClient())
            {
                string json = client.DownloadString(string.Format("{0}/{1}", "http://localhost/ServicioREST/serviceRestful.svc/citas", CODCIT.ToString()));
                return Json(new { datos = json });
            }
        }

        public JsonResult atenderCita(Models.citaGeneradaDataModel model) {
            IDaoFactory daoFactory = new DAOFactory();
            ICitaService citaServices = new CitaService(daoFactory);
            string mensajeRespuesta = string.Empty;
            string tipoMensaje = string.Empty;
            var entidad = new citaBE(){
                CODCIT = model.CODCIT,
                CODDOC = model.CODDOC,
                CODLAB = model.CODLAB,
                OBSCIT = model.OBSCIT,
                FLGEST = model.FLGEST
            };
            var resultado = citaServices.atenderCita(entidad, ref mensajeRespuesta, ref tipoMensaje);
            return Json(new { datos = resultado, mensaje = mensajeRespuesta });
        }

        public JsonResult cancelarCita(Models.citaGeneradaDataModel model)
        {
            IDaoFactory daoFactory = new DAOFactory();
            ICitaService citaServices = new CitaService(daoFactory);
            string mensajeRespuesta = string.Empty;
            string tipoMensaje = string.Empty;
            var entidad = new citaBE()
            {
                CODCIT = model.CODCIT,
                OBSCIT = model.OBSCIT
            };
            var resultado = citaServices.cancelarCita(entidad, ref mensajeRespuesta, ref tipoMensaje);
            return Json(new { datos = resultado, mensaje = mensajeRespuesta });
        }

    }
}
